<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script>
		// 未声明的变量是 undefined ?  是错误的回答
		// console.log(a) 
		// 1 、 声明了变量 但是没有赋值  这个时候浏览器会默认给他个值 这个值就是undefined
		// var a;

		// console.log(a)
		// // 2、声明了变量，并且赋值为undefined
		// var b = undefined;
		// console.log(b)
		// // 3，当我们访问对象中不存在的属性的时候 也会是undefined
		// var c = {}
		// console.log(c.name)
		// var  obj = {
		// 	name:'Franyn',
		// 	age:"18"
		// }
		// console.log(obj.age)
		// delete obj.age  delete obj["age"]
		// console.log(obj.age)
		// 函数调用
		// 在es6之前 函数内部的this是由该函数的调用方式决定的，函数内部的this跟书写的位置无关
		// var name =  20
		// var str = {
		// 	name:'18',
		// 	say:function(){
		// 		console.log(this.name)  this===>str
		// 	}
		// }
		// var length = 5
		// function f1() {
		// 	console.log(this.length)
		// }
		// // f1.call([3,4,5])
		// // f1.apply(this) window.length
		// f1.call(10)
		// var obj = {
		// 	run:function(){
		// 		console.log('我要跑的快')
		// 	}
		// }
		// function Person(){
		// 	// console.log('123')
		// 	// 处理age这个值
		// 	// var age = 18
		// 	// return {
		// 	// 	name:'16'
		// 	// }
			
		// }
		
		// Person.prototype = {
		// 	constructor:Person, 不破坏原来的原型对象的结构
		// 	say:function(){
		// 		console.log('nihao a ')
		// 	}
		// }
		// var p1 = new Person()
		// var p2 = new Person()
		// console.log(p1.say())
		// var p = Person()
		// console.log(p)
		// var obj = {
		// 	name:'33'
		// }
		// console.log(obj)   //Object 是他的父对象
		// function Person(){}
		// var p = new Person()

		// console.log(p.__proto__)

		// console.log(Person.prototype)
		var obj = Object.create(null)
		console.log(obj)  //纯洁的 对象
	</script>
</body>
</html>